package com.tianaceae.educational.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 教务课程对象 edu_course
 * 
 * @author zhouhonggang
 * @date 2023-03-30
 */
public class EduCourse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseTitle;

    /** 课程封面 */
    @Excel(name = "课程封面")
    private String courseCover;

    /** 科目外键 */
    @Excel(name = "科目外键")
    private Long eduSubjectId;

    /** 教务科目信息 */
    private EduSubject eduSubject;

    /** 课程总价 */
    @Excel(name = "课程总价")
    private BigDecimal coursePrice;

    /** 课程次数 */
    @Excel(name = "课程次数")
    private Long courseNumber;

    /** 截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deadlineDate;

    /** 课程类型 */
    @Excel(name = "班级类型")
    private String classType;

    /** 课程类型 */
    @Excel(name = "课程类型")
    private String courseType;

    /** 课时费用 */
    @Excel(name = "课时费用")
    private BigDecimal teacherFee;

    /** 开放预约 */
    @Excel(name = "开放预约")
    private String openOrder;

    /** 是否上架 */
    @Excel(name = "是否上架")
    private String whetherShelf;

    /** 是否推荐 */
    @Excel(name = "是否推荐")
    private String whetherRecommend;

    /** 课程库存 */
    @Excel(name = "课程库存")
    private Long courseInventory;

    /** 停售日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "停售日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date stopDate;

    /** 乐观锁 */
    private Long revision;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCourseTitle(String courseTitle) 
    {
        this.courseTitle = courseTitle;
    }

    public String getCourseTitle() 
    {
        return courseTitle;
    }
    public void setCourseCover(String courseCover) 
    {
        this.courseCover = courseCover;
    }

    public String getCourseCover() 
    {
        return courseCover;
    }
    public void setEduSubjectId(Long eduSubjectId) 
    {
        this.eduSubjectId = eduSubjectId;
    }

    public Long getEduSubjectId() 
    {
        return eduSubjectId;
    }
    public void setCoursePrice(BigDecimal coursePrice) 
    {
        this.coursePrice = coursePrice;
    }

    public EduSubject getEduSubject() {
        return eduSubject;
    }

    public void setEduSubject(EduSubject eduSubject) {
        this.eduSubject = eduSubject;
    }

    public BigDecimal getCoursePrice()
    {
        return coursePrice;
    }
    public void setCourseNumber(Long courseNumber) 
    {
        this.courseNumber = courseNumber;
    }

    public Long getCourseNumber() 
    {
        return courseNumber;
    }
    public void setDeadlineDate(Date deadlineDate) 
    {
        this.deadlineDate = deadlineDate;
    }

    public Date getDeadlineDate() 
    {
        return deadlineDate;
    }

    public String getClassType() {
        return classType;
    }

    public void setClassType(String classType) {
        this.classType = classType;
    }

    public void setCourseType(String courseType)
    {
        this.courseType = courseType;
    }

    public String getCourseType() 
    {
        return courseType;
    }
    public void setTeacherFee(BigDecimal teacherFee) 
    {
        this.teacherFee = teacherFee;
    }

    public BigDecimal getTeacherFee() 
    {
        return teacherFee;
    }
    public void setOpenOrder(String openOrder) 
    {
        this.openOrder = openOrder;
    }

    public String getOpenOrder() 
    {
        return openOrder;
    }
    public void setWhetherShelf(String whetherShelf) 
    {
        this.whetherShelf = whetherShelf;
    }

    public String getWhetherShelf() 
    {
        return whetherShelf;
    }
    public void setWhetherRecommend(String whetherRecommend) 
    {
        this.whetherRecommend = whetherRecommend;
    }

    public String getWhetherRecommend() 
    {
        return whetherRecommend;
    }
    public void setCourseInventory(Long courseInventory) 
    {
        this.courseInventory = courseInventory;
    }

    public Long getCourseInventory() 
    {
        return courseInventory;
    }
    public void setStopDate(Date stopDate) 
    {
        this.stopDate = stopDate;
    }

    public Date getStopDate() 
    {
        return stopDate;
    }
    public void setRevision(Long revision) 
    {
        this.revision = revision;
    }

    public Long getRevision() 
    {
        return revision;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("courseTitle", getCourseTitle())
            .append("courseCover", getCourseCover())
            .append("eduSubjectId", getEduSubjectId())
            .append("coursePrice", getCoursePrice())
            .append("courseNumber", getCourseNumber())
            .append("deadlineDate", getDeadlineDate())
            .append("courseType", getCourseType())
            .append("teacherFee", getTeacherFee())
            .append("openOrder", getOpenOrder())
            .append("whetherShelf", getWhetherShelf())
            .append("whetherRecommend", getWhetherRecommend())
            .append("courseInventory", getCourseInventory())
            .append("stopDate", getStopDate())
            .append("revision", getRevision())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
